﻿#region Schedule Entry
//
// All rights are reserved. Reproduction or transmission in whole or in part, in 
// any form or by any means, electronic, mechanical or otherwise, is prohibited 
// without the prior written consent of the copyright owner.
// 
// Filename: ScheduleEntry.cs
//
#endregion 
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace DiscoveryLogic.DataServices.DataSources
{
    /// <summary>
    /// Entity class representing a payment schedule entry
    /// </summary>
    public class ScheduleEntry
    {
        /// <summary>
        /// holder for payment date
        /// </summary>
        private DateTime paymentDate;

        /// <summary>
        /// holder for payment amount
        /// </summary>
        private double payment;

        /// <summary>
        /// holder for amount of principal
        /// </summary>
        private double principal;

        /// <summary>
        /// holder for amount of interest
        /// </summary>
        private double interest;

        /// <summary>
        /// holder for total paid against principal since beginning of term
        /// </summary>
        private double totalAgainstPrincipal;

        /// <summary>
        /// holder for outstanding principal balance after accounting for previous payments
        /// </summary>
        private double principalBalance;

        /// <summary>
        /// getter/setter for payment date
        /// </summary>
        public DateTime PaymentDate
        {
            get { return paymentDate; }
            set { paymentDate = value; }
        }

        /// <summary>
        /// getter/setter for payment amount
        /// </summary>
        public double Payment
        {
            get { return payment; }
            set { payment = value; }
        }

        /// <summary>
        /// getter/setter for amount to interest
        /// </summary>
        public double Interest
        {
            get { return interest; }
            set { interest = value; }
        }

        /// <summary>
        /// getter/setter for amount paid to principal since beginning of term
        /// </summary>
        public double TotalAgainstPrincipal
        {
            get { return totalAgainstPrincipal; }
            set { totalAgainstPrincipal = value; }
        }

        /// <summary>
        /// getter/setter for amount outstanding against pricipal
        /// </summary>
        public double PrincipalBalance
        {
            get { return principalBalance; }
            set { principalBalance = value; }
        }
    }
}
